package com.chixing.day10.day10_Homew;


import java.util.Arrays;


public class MapSum1 {

    private  Entry[] entryArr;
    private int size ;
    public MapSum1(){
        this(16);
    }
    public MapSum1(int initCapacity){
        entryArr = new Entry[initCapacity];
    }

    private class Entry{
        String key;
        int value;

        private Entry(String key, int value) {
            this.key = key;
            this.value = value;
        }


    }

    /**
     * 插入 key-val 键值对，字符串表示键 key ，整数表示值 val 。
     * 如果键 key 已经存在，那么原来的键值对将被替代成新的键值对
     * @param key
     * @param value
     */
    public void insert(String key,int value){
        if(containerKey(key)){ // key 已存在
            Entry entry = get(key);
            entry.value = value;
        }else {  // key不存在
            if(size == entryArr.length) {// 扩容
                entryArr = Arrays.copyOf(entryArr, entryArr.length << 1);
            }
            entryArr[size++] = new Entry(key,value);
        }
    }

    // 判断key是否存在（是否包含）
    private boolean containerKey(String key){
        for(int i =0;i<size;i++){
            if( entryArr[i].key.equals(key)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 根据key获得到该键值对对象
     * @param key
     * @return
     */
    private Entry get(String key){
        for(int i =0;i<size;i++){
            if( entryArr[i].key.equals(key)) {
                return entryArr[i];
            }
        }
        return null;
    }

    //获得容器中已有元素的个数
    public int size(){
        return this.size;
    }

    public void show(){
        for(int i =0;i<size;i++){
            System.out.println(entryArr[i].key + "-" +entryArr[i].value );
        }
    }

}

